#ifndef _SS_FUNC_H_
#define _SS_FUNC_H_

#include "pppoe-server.h"

struct Session;
struct PppoePacket;
struct PppoeConection;

typedef struct PppoeSessionFunctionTable {
    void (*stop)(struct Session *ss, char const *reason);
    int (*is_active)(struct Session *ss);
    char const *(*to_string)(struct Session *ss);
} PppoeSessionFunctionTable_t;

extern struct PppoeSessionFunctionTable default_sft;

extern int send_packet(struct PppoeConection *conn, int sock, struct PppoePacket *pkt, int size);
extern void sendPADT(struct PppoeConection *conn, char const *msg);
extern void stop_all_session(void);
extern void pppoe_stop_session(struct Session *ss, char const *reason);
extern int pppoe_session_is_active(struct Session *ss);

#endif
